package com.ftg.learn.service;

import com.ftg.learn.dto.ModifyBuyNumInCartDto;
import com.ftg.learn.util.R;

/**
 * 购物车的业务逻辑
 *
 * @author 布衣
 */
public interface CartService {

    /**
     * 添加商品到购物车
     * @param userId 用户ID
     * @param prodId 商品id
     * @return        R<String>
     */
    R<String> addToCart(String userId, String prodId);

    /**
     * 获取购物车信息
     * @param userId 用户ID
     * @return  R<String>
     */
    R<String> getDataFormRedis(String userId);

    /**
     * 修改购物车商品数量
     * @param buyNumDto 商品数量
     * @return R<String>
     */
    R<String> update(String userId,ModifyBuyNumInCartDto buyNumDto);

    /**
     * 删除购物车商品
     * @param userId 用户ID
     * @param prodId 商品id
     * @return  R<String>
     */
    R<String> deleteByProId(Long userId, Long prodId);

    /**
     * 清空购物车
     * @param userId 用户ID
     * @return  R<String>
     */
    R<String> deleteAll(String userId);
}
